b13d440262ce87aba11b0eb0ca47d9f812b83d46,clc/modules/msgs/src/main/java/com/eucalyptus/component/ServiceTransitions.java,ServiceTransitions,disableTransitionChain,#ServiceConfiguration#,190

Before Change


  
  static final CheckedListenableFuture<ServiceConfiguration> disableTransitionChain( final ServiceConfiguration config ) {
    if ( State.ENABLED.isIn( config ) ) {
      Callable<CheckedListenableFuture<ServiceConfiguration>> transition = Automata.sequenceTransitions( config,
                                                                                                         Component.State.ENABLED,
                                                                                                         Component.State.DISABLED );
      try {
        return transition.call( );
      } catch ( Throwable ex ) {
        LOG.error( ex, ex );
        return Futures.predestinedFailedFuture( ex );
      }
    } else if ( !State.DISABLED.isIn( config ) && !State.NOTREADY.isIn( config ) ) {
      Callable<CheckedListenableFuture<ServiceConfiguration>> transition = Automata.sequenceTransitions( config,
                                                                                                         Component.State.BROKEN,
                                                                                                         Component.State.INITIALIZED,
                                                                                                         Component.State.LOADED,
                                                                                                         Component.State.NOTREADY,
                                                                                                         Component.State.DISABLED,
                                                                                                         Component.State.DISABLED );
      try {
        return transition.call( );
      } catch ( Throwable ex ) {
        LOG.error( ex, ex );
        return Futures.predestinedFailedFuture( ex );
      }
    } else {
      return Futures.predestinedFuture( config );
    }
  }
  

After Change


    return executeTransition( config, transition );
  }
  
  static final CheckedListenableFuture<ServiceConfiguration> disableTransitionChain( final ServiceConfiguration config ) {
    Callable<CheckedListenableFuture<ServiceConfiguration>> transition = null;
    if ( State.ENABLED.isIn( config ) ) {
      transition = Automata.sequenceTransitions( config,
                                                 Component.State.ENABLED,
                                                 Component.State.DISABLED );
    } else if ( !State.DISABLED.isIn( config ) && !State.NOTREADY.isIn( config ) ) {
      transition = Automata.sequenceTransitions( config,
                                                 Component.State.BROKEN,
                                                 Component.State.INITIALIZED,
                                                 Component.State.LOADED,
                                                 Component.State.NOTREADY,
                                                 Component.State.DISABLED,
                                                 Component.State.DISABLED );
    } else if ( State.DISABLED.isIn( config ) ) {
      transition = Automata.sequenceTransitions( config,
                                                 Component.State.DISABLED,
                                                 Component.State.DISABLED );
    } else {
      Exceptions.trace( "Fauled to find transition to requested state DISABLED from " + config.lookupState( ) + " for: " + config.toString( ) );
    }
    return executeTransition( config, transition );
  }
  
  static final CheckedListenableFuture<ServiceConfiguration> stopTransitionChain( final ServiceConfiguration config ) {